'use strict'

const keys = {
  kAvvioBoot: Symbol('fastify.avvioBoot'),
  kChildren: Symbol('fastify.children'),
  kBodyLimit: Symbol('fastify.bodyLimit'),
  kRoutePrefix: Symbol('fastify.routePrefix'),
  kLogLevel: Symbol('fastify.logLevel'),
  kLogSerializers: Symbol('fastify.logSerializers'),
  kHooks: Symbol('fastify.hooks'),
  kHooksDeprecatedPreParsing: Symbol('fastify.hooks.DeprecatedPreParsing'),
  kSchemas: Symbol('fastify.schemas'),
  kValidatorCompiler: Symbol('fastify.validatorCompiler'),
  kSchemaErrorFormatter: Symbol('fastify.schemaErrorFormatter'),
  kSerializerCompiler: Symbol('fastify.serializerCompiler'),
  kReplySerializerDefault: Symbol('fastify.replySerializerDefault'),
  kContentTypeParser: Symbol('fastify.contentTypeParser'),
  kReply: Symbol('fastify.Reply'),
  kRequest: Symbol('fastify.Request'),
  kRequestPayloadStream: Symbol('fastify.RequestPayloadStream'),
  kCanSetNotFoundHandler: Symbol('fastify.canSetNotFoundHandler'),
  kFourOhFour: Symbol('fastify.404'),
  kFourOhFourLevelInstance: Symbol('fastify.404LogLevelInstance'),
  kFourOhFourContext: Symbol('fastify.404ContextKey'),
  kDefaultJsonParse: Symbol('fastify.defaultJSONParse'),
  kReplySerializer: Symbol('fastify.reply.serializer'),
  kReplyIsError: Symbol('fastify.reply.isError'),
  kReplyHeaders: Symbol('fastify.reply.headers'),
  kReplyHasStatusCode: Symbol('fastify.reply.hasStatusCode'),
  kReplySent: Symbol('fastify.reply.sent'),
  kReplySentOverwritten: Symbol('fastify.reply.sentOverwritten'),
  kReplyStartTime: Symbol('fastify.reply.startTime'),
  kReplyErrorHandlerCalled: Symbol('fastify.reply.errorHandlerCalled'),
  kReplyIsRunningOnErrorHook: Symbol('fastify.reply.isRunningOnErrorHook'),
  kSchemaVisited: Symbol('fastify.schemas.visited'),
  kState: Symbol('fastify.state'),
  kOptions: Symbol('fastify.options'),
  kDisableRequestLogging: Symbol('fastify.disableRequestLogging'),
  kPluginNameChain: Symbol('fastify.pluginNameChain'),
  // This symbol is only meant to be used for fastify tests and should not be used for any other purpose
  kTestInternals: Symbol('fastify.testInternals')
}

module.exports = keys
